package vip.xiaonuo.supplier.modular.finance.settlement.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;
import vip.xiaonuo.supplier.modular.finance.settlement.entity.SupplierSettlement;
import vip.xiaonuo.supplier.modular.finance.settlement.param.*;
import vip.xiaonuo.supplier.modular.warehouse.storesstream.param.SupplierStoresStreamExportParam;

import java.io.IOException;
import java.util.List;

/**
 * 结算单表Service接口
 *
 * @author Mr.wu
 * @date  2025/04/09 17:28
 **/
public interface SupplierSettlementService extends IService<SupplierSettlement> {

    /**
     * 获取结算单表分页
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     */
    Page<SupplierSettlement> page(SupplierSettlementPageParam supplierSettlementPageParam);

    /**
     * 添加结算单表
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     */
    void add(SupplierSettlementAddParam supplierSettlementAddParam);

    /**
     * 编辑结算单表
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     */
    void edit(SupplierSettlementEditParam supplierSettlementEditParam);

    /**
     * 删除结算单表
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     */
    void delete(List<SupplierSettlementIdParam> supplierSettlementIdParamList);

    /**
     * 获取结算单表详情
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     */
    SupplierSettlement detail(SupplierSettlementIdParam supplierSettlementIdParam);

    /**
     * 获取结算单表详情
     *
     * @author Mr.wu
     * @date  2025/04/09 17:28
     **/
    SupplierSettlement queryEntity(String id);

    /**
     * 导出结算单据
     *
     * @author Mr.wu
     * @date  2026/04/18 09:12
     **/
    void exportSettlement(SupplierSettlementExportParam supplierSettlementExportParam, HttpServletResponse response) throws IOException;
}
